Код из плагина, с куском моей логики - вырывай её, если не нужна.
Для большего понимания посмотри .js-файлы
MV.
Смысл в том, что на экране сохранения:
1) При нажатии на слот движок (Сцена сохранения) должен проверять, доступен ли слот для сохранения.
2) Если слот недоступен, движок (Окно сцены сохранения) отрисовывает его другим - серым - цветом.
MV этого не делает, я основывался на подходе
MZ.
Код:
//----MODIFY CORE-LIB //--РАСШИРЕНИЕ СТАНДАРТНОГО ФУНКЦИОНАЛА
//--save process //--ДОСТУПНОСТЬ СЛОТА ДЛЯ СОХРАНЕНИЯ
Scene_Save.prototype.onSavefileOk = function() {
Scene_File.prototype.onSavefileOk.call(this);
let savefileId = this.savefileId();
if( true === isSavefileEnabled(savefileId) ){
$gameSystem.onBeforeSave();
if (DataManager.saveGame(this.savefileId())) {
this.onSaveSuccess();
let saveSlotsStatusesList = $gameVariables.value(saveSlotsStatusesListVarId) || [];
saveSlotsStatusesList.push( {slotId: savefileId, slotEnabled: true} );
$gameVariables.setValue(saveSlotsStatusesListVarId, saveSlotsStatusesList);
//saveSlotsStatusesList.push( {slotId: savefileId, slotEnabled: true} );
} else {
this.onSaveFailure();
}
} else {
this.onSaveFailure();
}
};
//--save GUI //--ЦВЕТ СЛОТА ИСХОДЯ ИЗ ДОСТУПНОСТИ
Window_SavefileList.prototype.drawItem = function(index) {
var id = index + 1;
var valid = DataManager.isThisGameFile(id);
valid = isSavefileEnabled(id);
var info = DataManager.loadSavefileInfo(id);
var rect = this.itemRectForText(index);
this.resetTextColor();
if (this._mode === 'load') {
this.changePaintOpacity(valid);
}
this.drawFileId(id, rect.x, rect.y);
if (info) {
this.changePaintOpacity(valid);
this.drawContents(info, rect, valid);
this.changePaintOpacity(true);
}
};
Социальные закладки